dojo.provide("miaigo.model.sgf.values.IntegerValueHandler");

dojo.require("miaigo.model.sgf.values.ValueHandler");

dojo.declare(
    "miaigo.model.sgf.values.IntegerValueHandler",
    [miaigo.model.sgf.values.ValueHandler],
    {
	_minValue: Number.NaN,
	_maxValue: Number.NaN,

	constructor: function(createParam)
	{
	    if (createParam && createParam.minValue)
	    {
		this._minValue = createParam.minValue;
	    }

	    if (createParam && createParam.maxValue)
	    {
		this._maxValue = createParam.maxValue;
	    }
	},

	getMin: function() { return this._minValue; },
	getMax: function() { return this._maxValue; },

	parseValue: function(/* Array */values)
	{
	    var value = values[0];

	    if (value)
	    {
		var intValue = parseInt(value);

		if (!isNaN(this._minValue))
		{
		    // check min bound
		    if (intValue < this._minValue)
		    {
			console.warn("Illegal Integer Value: " + value);
		    }
		}

		if (!isNaN(this._maxValue))
		{
		    // check max bound
		    if (intValue > this._maxValue)
		    {
			console.warn("Illegal Integer Value: " + value);
		    }
		}

		return intValue;
	    }
	}
    });